From 318c97c959335307a2bf213db718c2b50f0f5f61 Mon Sep 17 00:00:00 2001 From: Matthias Clasen Date: Wed, 22 Oct 2014 22:49:31 -0400 Subject: [PATCH] Fix mispositioned window menu in hi-dpi We always want to send the position in device pixels, so apply the window scale before sending them out. https://bugzilla.gnome.org/show_bug.cgi?id=738955 --- gdk/x11/gdkwindow-x11.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/gdk/x11/gdkwindow-x11.c b/gdk/x11/gdkwindow-x11.c index be3586b0de..e4b10585fc 100644 --- a/gdk/x11/gdkwindow-x11.c +++ b/gdk/x11/gdkwindow-x11.c @@ -5604,6 +5604,7 @@ static gboolean gdk_x11_window_show_window_menu (GdkWindow *window, GdkEvent *event) { + GdkWindowImplX11 *impl = GDK_WINDOW_IMPL_X11 (window->impl); GdkDisplay *display = GDK_WINDOW_DISPLAY (window); GdkDevice *device; int device_id; @@ -5636,8 +5637,8 @@ gdk_x11_window_show_window_menu (GdkWindow *window, xclient.window = GDK_WINDOW_XID (window); xclient.message_type = gdk_x11_get_xatom_by_name_for_display (display, "_GTK_SHOW_WINDOW_MENU"); xclient.data.l[0] = device_id; - xclient.data.l[1] = x_root; - xclient.data.l[2] = y_root; + xclient.data.l[1] = x_root * impl->window_scale; + xclient.data.l[2] = y_root * impl->window_scale; xclient.format = 32; XSendEvent (GDK_DISPLAY_XDISPLAY (display), GDK_WINDOW_XROOTWIN (window), False, -- 2.30.2